package com.micro.ai.auth.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 租户DTO
 * 
 * @author micro-ai
 * @since 0.0.1
 */
@Data
@Schema(description = "租户信息")
public class TenantDTO implements Serializable {

    private static final long serialVersionUID = 1L;

    @Schema(description = "租户ID")
    private String id;

    @Schema(description = "租户名称")
    private String name;

    @Schema(description = "子域名")
    private String subdomain;

    @Schema(description = "租户类型：personal-个人, organization-组织")
    private String type;

    @Schema(description = "状态：active-活跃, inactive-未激活, suspended-已暂停, pending-待审核")
    private String status;

    @Schema(description = "套餐类型：free-免费, basic-基础, premium-高级, enterprise-企业")
    private String planType;

    @Schema(description = "联系邮箱")
    private String contactEmail;

    @Schema(description = "联系电话")
    private String contactPhone;

    @Schema(description = "网站")
    private String website;

    @Schema(description = "国家")
    private String country;

    @Schema(description = "省份")
    private String province;

    @Schema(description = "城市")
    private String city;

    @Schema(description = "地址")
    private String address;

    @Schema(description = "邮编")
    private String postalCode;

    @Schema(description = "试用结束时间")
    private LocalDateTime trialEndsAt;

    @Schema(description = "订阅结束时间")
    private LocalDateTime subscriptionEndsAt;

    @Schema(description = "创建时间")
    private LocalDateTime createdAt;

    @Schema(description = "更新时间")
    private LocalDateTime updatedAt;
}

